<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>this底层原理</title>
</head>

<body>
    <script>
        // 栈内存 ：存obj等全局变量 内存地址 不需要太多空间
        // 堆内存 ：存obj.bar 具体对象引用关系 
        // 匿名函数 在独立的堆内存中，申请空间 obj.foo-->引用关系
        // 执行时的上下文环境（作用域）  执行栈之中 js运行 执行栈：代表代码执行到哪里
        var obj = {
            bar: 1,// 属于对象本身 在堆内存中申请空间 以属性描述对象的形式保存
            foo: function () {
                console.log(this);
            }
        }
        // 函数 在内存中是独立的！
        // foo 存的是一个地址，指向了函数所在的地址
        var foo = obj.foo;// 函数体
        obj.foo();// 作为对象的方法
        foo();// 
    </script>
</body>

</html>